Brushless motors have a permanent magnet rotor and a stator comprising a plurality of phase windings that may be coupled in star or polygonal configurations, or may be independent one from the other. In the motors with phase windings in a star or polygonal configuration, a number of taps equal to the number of phase windings of the motor (eventually +1, if also the neutral point is made accessible) are externally available. In motors where the phase windings are independent from each other, the connector taps of the phase windings are accessible.
These kind of motors are often used in applications for hard disks and DVD drives, for moving the magnetic tape in video-recorders, for CD players and the like.
Most often, brushless motors are three-phase motors, the driving circuit comprising of integrated circuits the output stage of which powers the phase windings, and may have a three-phase inverter bridge architecture, in case of star or triangle connected motors, or a three full-bridge architecture in case of motors with independent phase windings.
For sake of clarity, reference is made hereinafter only to three-phase star connected brushless motors, but the considerations that will be made hold also for motors with other numbers of windings and/or different connection schemes.
Referring to three-phase motors, the most typical driving mode is the “bipolar” mode, in which at each instant two phase windings are driven while the third phase winding is in high impedance state (or tristate).
The phase windings to be driven are switched according to a cyclic sequence that may be synchronized with the instantaneous position of the rotor, that typically is established by monitoring the back electromotive force (BEMF) sensed on the phase winding that is at the moment in a high impedance state. In this case, usually the zero-cross instant of the BEMF voltage is monitored, this voltage is sinusoidal or at least periodic.
A common technique for estimating the rotor position of a brushless poly-phase motor is disclosed in the European patent application EP 892 488 and includes setting a time window during which the output of a leg or a half-bridge (or of a bridge, in case of driving of motors with independent phases) of the driving stage is tristated, thus allowing the BEMF of the phase winding coupled thereto to be read.
The time window may have a constant time duration independent from functioning parameters of the motor, or a time duration that may vary in function of the motor speed or in function of other events such as the detected zero-cross (briefly ZC) instants of the BEMF and the distance of the zero-cross instant from the expected instant.
The optimal definition of the time window of the ZC of the BEMF, calculated in electrical degrees before the expected ZC, is the result of a compromise between precision of the detection of the position and driving efficiency of the motor.
When the motor is being accelerated, ZC events are determined with an uncertainty proportional to the acceleration, thus in this situation a sufficiently longer time window is chosen for determining correctly the position. However, choosing a longer time window reduces the efficiency of the driving, because tristating the monitored phase winding causes a distortion of the current profile, thus the duration of the time window should be as short as possible.
An algorithm for automatically adjusting the duration of the time window at every electrical revolution depending on a flag, EARLYZC, that signals whether the rotor position during the previous electrical revolution was as expected or not for extending (when EARLYZC is logically high) or shortening (when EARLYZC is logically low) the time window, is known.
The functioning of this algorithm is schematically illustrated in FIG. 1. An initial value is given to a pointer POINTER to a look-up table in which durations of the time window and of the masked portion thereof are stored. When a zero-cross event (ZC) is detected, it is checked whether it occurred during the masked portion of the time window (EARLYZC=1) or not. If this condition is verified, the pointer POINTER is incremented (unless it has already attained the maximum admissible value MAX) in order to increase the duration of the time window, otherwise it is checked whether the pointer is equal to the minimum value (MIN) or to a steady-state value (TARGET). If none of these two conditions is verified, the pointer is decremented for reducing the duration of the time window, otherwise it is left unchanged and the next zero-cross is waited for.
A drawback of this known algorithm is that, when the motor accelerates, in order to catch the zero-cross of the BEMF in a phase winding during the unmasked portion of the time window, during which the winding is tristated, the algorithm should be capable of significantly increasing or decreasing from a revolution to the next the duration of the masking time. This tends to worsen sensibly the driving efficiency of the motor.
A method of driving a brushless motor that allows to adjust the duration of the masking in a more accurate way in shortening it, for preventing bounces back towards extended values because when excessively shortening the masking time, the motor brings the zero-cross event out of the unmasked portion of the time window would be desirable.